자바스크립트에는 추상적 같음 비교(이중 등호, 동등 연산자)와 엄격한 같음 비교(삼중 등호, 일치 연산자)가 있다.
가장 큰 차이점은 이중 등호는 두 값을 비교할 때 자동으로 형변환하여 같음을 비교하지만, 삼중 등호는 형변환을 수행하지 않고 비교한다.
이중 등호 연산자의 예시를 보자.
0 == false //true
"" == false //true
"" == 0 //true
"0" == 0 //true
[1,2] == "1,2" //true
new String('hello') == 'hello' //true
null == undefined //true
이중 등호 연산자는 자동으로 형변환을 하고 비교하므로 위 예시는 모두 true를 return한다. 하지만, 삼중 등호 연산자일 경우에 위 예시들은 모두 타입이 다르기 때문에 모두 false를 return할 것이다.
값을 비교할 때 삼중 등호 연산자를 사용하는 것을 습관화하는 것이 혹시 모를 예상치 못한 상황을 막을 수 있는 좋은 방법인 것 같다.